import java.util.List;


public class Celda {

private int fila;
private int columna;
private Caramelo caramelo;
private Tablero tablero;

public Celda(int fila, int columna,Tablero tablero){
	this.tablero = tablero;
}

public boolean puedeMover(Celda otraCelda){
  return otraCelda.explotaConCaramelo(this.getCaramelo());
}

private boolean explotaConCaramelo(Caramelo caramelo) {
	int coincidenciasHorizontales = 1 + this.getCoincidenciasIzquierda(caramelo) +  this.getCoincidenciasDerecha(caramelo);
	int coincidenciasVerticales = 1 + this.getCoincidenciasArriba(caramelo) ;
	return coincidenciasHorizontales > 3 || coincidenciasVerticales > 3; 
}

private int getCoincidenciasIzquierda(Caramelo caramelo) {
	int coincidencias = 0 ;
	List<Celda> celdasIzquieda = this.getTablero().getCeldasIzquierda(this);
	for(Celda celdaIzquierda: celdasIzquieda ){
		if (this.getCaramelo().equals(celdaIzquierda.getCaramelo())){
			coincidencias++;
		}else{
			break;
		}
	}
	return coincidencias; 
}

public Caramelo getCaramelo() {
	return caramelo;
}
public void setCaramelo(Caramelo caramelo) {
	this.caramelo = caramelo;
}
public Tablero getTablero() {
	return tablero;
}
public void setTablero(Tablero tablero) {
	this.tablero = tablero;
}

public int getFila() {
	return fila;
}
public void setFila(int fila) {
	this.fila = fila;
}
public int getColumna() {
	return columna;
}
public void setColumna(int columna) {
	this.columna = columna;
}


}
